package main

import "fmt"

func main() {
	f1()
	//defer 的基本使用
	fmt.Println("开始")
	defer fmt.Println(3)
	defer fmt.Println(2)
	defer fmt.Println(1)
	fmt.Println("结束")
	f1()
	i := f2()
	fmt.Println(i)
	a := f3()
	//fmt.Println(12313)
	fmt.Println(a)
	fmt.Println("我爱你")
}

func f1() {
	fmt.Println("开始")
	defer func() {
		fmt.Println("qqqq")
		fmt.Println("qqqq1")
	}() //必须是你行自执行
	fmt.Println("结束")
}

func f2() int { //匿名返回 0
	var a = 0
	defer func() {
		a += 10000
	}()
	return a
}
func f3() (a int) { //命名返回 10000
	//var a = 0
	defer func(a int) {
		a += 10000
	}(a)
	return a
}
